home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / PROGRAMM / DB_CLIPP / 2510.ZIP / TRSOURCE.EXE / PEEKSTR.ASM < prev    next >
Assembly Source File  |  1990-10-22  |  2KB  |  67 lines

  1. ; PEEKSTR.ASM
  2. ;
  3. ; by Ralph Davis
  4. ; modified by Leonard Zerman
  5. ;
  6. ; Placed in the public domain by Tom Rettig Associates, 10/22/1990.
  7. ;
  8.          PUBLIC   PEEKSTR
  9.  
  10.          EXTRN    _TR_PEEK_PARMS:FAR
  11.  
  12.          INCLUDE  EXTENDA.MAC
  13.  
  14. DGROUP GROUP _DATA
  15. ;*****************************************************
  16. _DATA  SEGMENT  WORD PUBLIC 'DATA'
  17.  
  18. ;
  19. NULL_STR    DB       0
  20. ;
  21. _DATA  ENDS
  22. ;*****************************************************
  23.  
  24. ;*****************************************************
  25. PEEKSTR_TEXT SEGMENT BYTE PUBLIC 'CODE'
  26.          ASSUME   CS:PEEKSTR_TEXT,DS:_DATA
  27. ;-----------------------------------------------------
  28. ;   
  29. ;     PEEKSTR(segment, offset)
  30. ;
  31. ;        segment = SPACE(4)    && hexadecimal string
  32. ;        offset  = number < 65536 or hexadecimal string
  33. ;
  34. ;        Returns:  string at segment:offset
  35. ;                  null string if less than two parameters passed
  36. ;
  37. ;        NOTE:  String must be null-terminated in memory
  38. ;               This function does NOT check for that!
  39. ;
  40. ;--------------
  41. PEEKSTR PROC     FAR
  42.          PUSH     BP
  43.          MOV      BP,SP
  44.          PUSH     DS
  45.          PUSH     ES
  46.          PUSH     SI
  47.          CALL     _TR_PEEK_PARMS
  48.          JL       PEEKSTR_ERR    ; Sign flag set means less than 2 parms
  49.          MOV      BX,AX
  50.          MOV      AX,SI          ; AX:BX now points to string
  51.          JMP      SHORT PEEKSTR_EXIT   ; and we're done
  52. PEEKSTR_ERR:
  53.          MOV      AX,_DATA     ; return null string for error
  54.          MOV      BX,OFFSET NULL_STR
  55. PEEKSTR_EXIT:
  56.          POP      SI
  57.          POP      ES
  58.          POP      DS
  59.          POP      BP
  60.          RET_CHAR AX,BX          ; return char * to caller
  61.          RET
  62. PEEKSTR ENDP
  63. ;------------------------------------------------
  64. PEEKSTR_TEXT    ENDS
  65. ;************************************************
  66.          END
  67.